Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

imgui support for bespoke interfaces #100

Merged
merged 1 commit into from
Oct 13, 2022
Merged

imgui support for bespoke interfaces #100

merged 1 commit into from
Oct 13, 2022

Conversation

Robadob
Copy link
Member

@Robadob Robadob commented Aug 18, 2022

Mostly early development and testing now.

Goal is to provide support for #92
May eventually lead to deprecating internal FreeType support.

Current Progress

  • CMake dependency integration
    • Could improve the generated CMakeLists.txt by adding explicit dependency on SDL2
    • Could replace CMakeLists.txt glob with specific files (in future once know what we need)
  • Setup an interactable test UI pane
    • Make ImGui mouse input not break when FullScreen is enabled
  • Display user specified UI
  • Feedback updated env properties to model
  • Validate properties passed to PanelVis.
  • Read-only env prop support.
  • Array env props?
  • Prevent race conditions?
  • Multi UI?
  • F2 to hide all UIs
  • Use native imgui support for all types rather than mapping
  • Sort out widths etc
  • Move debug menu to imgui (this kinda fixes where Text wrapping causes multi-line text to jiggle #99 was occuring)
  • Allow users to specify how many dp for floating-point types
  • Allow a button checkbox for int types (although would map to 0/1)
  • Seperator
  • Comments
  • Documentation
  • Update debug ui random seed if changed via HostAPI Rename rng seed, to initial rng seed
  • Pyflamegpu
  • Test pyflamegpu (especially env property element)
  • Only allow each env prop to be in UI once (having multiple elements with same name causes input to break a bit)
  • Multi window no overlap?
  • Collapsible sections begin open?

…properties.

User's are provided the ability to add environment properties/environment array property elements to user interface panel(s) in the form of input boxes, sliders, drag things and checkboxes.

Additionally, moved the debug menu to ImGui and added the initial random seed to it's items.
@Robadob Robadob marked this pull request as ready for review August 30, 2022 21:05
@Robadob Robadob requested a review from ptheywood August 30, 2022 21:05
@Robadob
Copy link
Member Author

Robadob commented Aug 30, 2022

cc @ptheywood Mostly just review the CMake. Yeah it uses glob, but the files will only change on a configure (unless a user manually git checkouts or adds files), aka when GLOB runs. So doesn't bother me. Still more ideal than, having to keep track of if ImGui changes required files.

Copy link
Member

@mondus mondus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Design of this seems sensible and as discussed in the issue. It would be much easier to review with an example of usage within some of the model examples (given ped sits separately).

@Robadob

This comment was marked as duplicate.

@Robadob
Copy link
Member Author

Robadob commented Sep 12, 2022

It would be much easier to review with an example of usage within some of the model examples (given ped sits separately).

Circles is too simple (and quickly breaks down if you mess with forces). Less familiar with suitability of other models.

I will add a commit with this UI for all the boids examples, however they only demonstrate a small part of the functionality. Whereas the complexity of the ped model allows most to be used.

image

@Robadob Robadob merged commit 3c4d209 into master Oct 13, 2022
@Robadob Robadob deleted the imgui branch October 13, 2022 13:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants